#ifndef VERTICE_H
#define VERTICE_H

#include "ponto.h"
#include "cor.h"
#include "triangulo.h"

/**
*   Classe que representa um vertice. Extende Ponto e possui
*   informacoes adicionais de cor(RGB).
*/
class Vertice : public Ponto
{
    // TODO: criar construtor que inicializa tudo com 0
    //      e metodos para adicionar ao valor R,G ou B atual
    //      ao inves de setar apenas.
private:
    Ponto normal;
    Cor cor;
    bool calculado;

public:
    Vertice();
    ~Vertice();

    Ponto getNormal();
    unsigned char getCorR();
    unsigned char getCorG();
    unsigned char getCorB();
    Cor getCor();
    bool foiCalculado();

    void setNormal(Ponto p);
    void setCorR(unsigned char corR);
    void setCorG(unsigned char corG);
    void setCorB(unsigned char corB);
    void setCor(Cor cor);
    void setCalculado(bool calculado);
};

#endif // VERTICE_H
